import gradio as gr
import requests

# 配置 DeepSeek API 的 URL 和 API Key
DEEPSEEK_API_URL = "https://api.deepseek.com/v1/chat/completions"  # 假设这是 DeepSeek 的 API 地址
API_KEY = "sk-3942df11ebc54a3ab1314baa80ef7382"  # 替换为你的 DeepSeek API Key


def ask_deepseek(question):
    """
    调用 DeepSeek API 发送问题并获取回答
    """
    headers = {
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json"
    }

    # 构造请求数据（根据 DeepSeek API 的文档调整）
    data = {
        "model": "deepseek-chat",  # 假设使用的模型名称
        "messages": [
            {"role": "user", "content": question}
        ],
        "max_tokens": 150  # 限制回答的长度
    }

    try:
        # 发送 POST 请求到 DeepSeek API
        response = requests.post(DEEPSEEK_API_URL, headers=headers, json=data)
        response.raise_for_status()  # 检查请求是否成功

        # 解析 API 响应
        result = response.json()
        answer = result.get("choices", [{}])[0].get("message", {}).get("content", "No answer found.")
        return answer

    except requests.exceptions.RequestException as e:
        # 处理请求异常
        return f"Error: {str(e)}"


# 创建 Gradio 界面
def gradio_interface(question):
    """
    Gradio 界面函数，调用 ask_deepseek 并返回结果
    """
    return ask_deepseek(question)


# 定义 Gradio 界面
iface = gr.Interface(
    fn=gradio_interface,  # 调用 DeepSeek API 的函数
    inputs="text",  # 输入框，用户输入问题
    outputs="text",  # 输出框，显示 DeepSeek 的回答
    title="DeepSeek 问答系统",
    description="输入你的问题，DeepSeek 将会为你解答。",
    examples=["什么是人工智能？", "如何学习 Python？"]  # 提供一些示例问题
)

# 启动 Gradio 界面
iface.launch()